// 引入multer模块
const multer = require('multer')
const path = require('path')
const moment = require('moment')
const { mkdirp } = require('mkdirp')

const upload = () => {
  // 获取当前日期
  const nowDate = moment().format('YY-MM-DD')
  // 配置文件上传
  const storage = multer.diskStorage({
    // 配置目录：指定上传到哪一个目录
    destination: async (req,file,cb) => {
      // 根据日期创建目录
      const dir = `public/upload/${nowDate}`
      await mkdirp(dir)
      // 创建好以后，设置为上传的目录
      // cb回调函数，自动调用，通过这个来设置上传目录
      cb(null, dir)
    },
    // 配置文件
    filename: (req,file,cb) => {
      // 获取到原始文件的后缀名
      const extname = path.extname(file.originalname)
      // 使用时间戳作为新的文件名称
      const filename = Date.now() + extname
      // 设置上传后的文件名称
      cb(null,filename)
    }
  })
  // 文件上传
  return multer({
    storage
  })
}

// 暴露文件上传
module.exports = {
  upload
}